/**
 * Copyright 2009-2010 - YangJiandong(chunquedong)
 * 
 * This file is part of ChunMap project
 * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE(Version >=3)
 * 你可以自由复制、传播本项目的下载包文件，但必须保持其完整性。
 * 我们不用对使用中的风险及由此造成的损失承担任何责任。
 * 详细情况请见《ChunMap许可协议》。

 * 想了解更多有关ChunMap的信息，请访问http://code.google.com/p/chunmap/
 */
package chunmap.model.relate.relateop;

import chunmap.model.geom.GeoPoint;
import chunmap.model.geom.Geometry;
import static chunmap.model.relate.IntersectionMatrix.*;
import chunmap.model.relate.ComputeIm;

/**
 * 
 * @author chunquedong
 * 
 */
public class Point_Point extends ComputeIm {

	public Point_Point(GeoPoint p1, GeoPoint p2) {
		g1 = p1;
		g2 = p2;
	}

	@Override
	protected void computeIM() {
		GeoPoint p1 = (GeoPoint) g1;
		GeoPoint p2 = (GeoPoint) g2;
		if (p1.equals(p2)) {
			im.set(Inner, Inner, PointDim);
		} else {
			im.set(Inner, Inner, EmptyDim);
			im.set(Inner, Outer, PointDim);
			im.set(Outer, Inner, PointDim);
		}
	}

	// 由于覆盖了computerIm方法，所以以下两方法未使用
	@Override
	protected int inner2innerDim(Geometry g1, Geometry g2) {
		return 0;
	}

	@Override
	protected boolean within(Geometry g1, Geometry g2) {
		return false;
	}
}
